package com.papercutting.platform.service;

import com.papercutting.platform.entity.Config;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 系统配置服务接口
 */
public interface ConfigService {
    
    /**
     * 保存配置
     */
    Config save(Config config);
    
    /**
     * 根据ID查找配置
     */
    Config findById(Long id);
    
    /**
     * 查找所有配置
     */
    List<Config> findAll();
    
    /**
     * 分页查找配置
     */
    Page<Config> findAll(Pageable pageable);
    
    /**
     * 根据ID删除配置
     */
    void deleteById(Long id);
    
    /**
     * 根据配置键查找配置
     */
    Config findByConfigKey(String configKey);
    
    /**
     * 根据配置键和系统配置状态查找配置
     */
    Config findByConfigKeyAndIsSystem(String configKey, Boolean isSystem);
}